import Request from '@/js_sdk/luch-request/luch-request/index.js';
import { BASE_URL } from './constant.js';
import storage from './storage.js'

const http = new Request();
// 全局请求配置
http.setConfig((config) => {
	/* config 为默认全局配置*/
	config.baseURL = BASE_URL;
	return config;
});

/**
 * 拦截器-请求之前
 */
http.interceptors.request.use(
	(config) => {
		// 可使用async await 做异步操作
		if (storage.getStorageSync('token')) {
			config.header = {
				'Authorization': storage.getStorageSync('token'),// 在拦截器配置token之类的header操作，防止首次加载token后，读取不到token
				'X-Access-Token': storage.getStorageSync('token')// 在拦截器配置token之类的header操作，防止首次加载token后，读取不到token
			};
		}
		
		return config;
	},
	(config) => {
		// 可使用async await 做异步操作
		return Promise.reject(config);
	}
);

/**
 * 拦截器-请求之后
 */
http.interceptors.response.use(
	(response) => {
		/* 对响应成功做点什么 可使用async await 做异步操作*/
		if (response.data.code === 401) {
			uni.removeStorageSync('userInfo')
			uni.removeStorageSync('token')
			uni.navigateTo({
				url: '/pages/login/login'
			})
		} else {
			return response.data;
		}
	},
	(response) => {
		console.log(response)
		/*  对响应错误做点什么 （statusCode !== 200）*/
		if (response.data.code === 401) {
			uni.removeStorageSync('userInfo')
			uni.removeStorageSync('token')
			uni.navigateTo({
				url: '/pages/login/login'
			})
		}
		// return Promise.reject(response);
	}
);

export default http;
